package com.sun.umbrella.service.oauth2;

import com.sun.umbrella.domain.bo.OauthClientBO;
import com.sun.umbrella.domain.entity.OauthClientDO;

import java.util.List;

/**
 * @author Jay
 * @version v1.0
 * @description 第三方客户端接入相关的逻辑
 * @date 2017-11-24 11:21
 */
public interface ClientService {

    /**
     * 创建客户端记录
     *
     * @param clientName
     * @return
     */
    Boolean createClient(String clientName);


    /**
     * 删除客户端记录
     *
     * @param clientId
     */
    void deleteClient(String clientId);


    /**
     * 查询所有客户端记录
     *
     * @return
     */
    List<OauthClientBO> queryClientList();


    /**
     * 根据clientId查询客户端记录
     *
     * @param clientId
     * @return
     */
    OauthClientDO findByClientId(String clientId);


    /**
     * 根据clientSecret查询客户端记录
     *
     * @param clientSecret
     * @return
     */
    OauthClientDO findByClientSecret(String clientSecret);


    /**
     * 启用或禁用
     *
     * @param clientId
     * @param enable
     * @return
     */
    Boolean enableClient(String clientId, Integer enable);
}
